package Spark原理.总体介绍

import org.apache.spark.{SparkConf, SparkContext}
import org.junit.Test

class WordCounts {

  @Test
  def test: Unit ={

    // 1.创建sc
    val conf = new SparkConf().setMaster("local[6]").setAppName("wordCounts")
    val sc   = new SparkContext(conf)

    // 2.读取数据
    val data = sc.textFile("dataset/wordcount.txt")

    // 3.处理数据
    //    3.1 拆分
    val splitRDD = data.flatMap( _.split(" ") )
    //    3.2 赋予词频
    val mapRDD   = splitRDD.map( (_,1) )
    //    3.3 词频统计
    val reduceRDD = mapRDD.reduceByKey( _+_ )
    //    3.4 字符串转换
    val strRDD   = reduceRDD.map( item => s"${item._1},${item._2}" )

    // 4.获取结果
    strRDD.collect().foreach(println(_))

    // 5.关闭sc，释放资源
    sc.stop()
  }

}
